package service;

import com.sun.xml.internal.ws.util.StringUtils;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

/**
 * Created by cxland on 2017/10/13.
 */
public class DataBaseService {

    public static void setConf() throws Exception{
        SAXReader sax     =new SAXReader();//创建一个SAXReader对象
        File      xmlFile =new File("./Test.xml");//根据指定的路径创建file对象
        if(xmlFile.exists()) {
            System.out.println("文件存在");
            Document document = sax.read(xmlFile);//获取document对象,如果文档无节点，则会抛出Exception提前结束
            Element  root     = document.getRootElement();//获取根节点
            writeDocument(document,"./Tsssest.xml");
        //    System.out.println(root.getText());
           // getNodes(root);
        }
    }
    public static void getNodes(Element node){
        System.out.println("--------------------");

        //当前节点的名称、文本内容和属性
        System.out.println("当前节点名称："+node.getName());//当前节点名称
        System.out.println("当前节点的内容："+node.getTextTrim());//当前节点名称
        List<Attribute> listAttr =node.attributes();//当前节点的所有属性的list
        for(Attribute attr:listAttr){//遍历当前节点的所有属性
            String name=attr.getName();//属性名称
            String value=attr.getValue();//属性的值
            System.out.println("属性名称："+name+"属性值："+value);
        }

        //递归遍历当前节点所有的子节点
        List<Element> listElement=node.elements();//所有一级子节点的list
        for(Element e:listElement){//遍历所有一级子节点
            getNodes(e);//递归
        }
    }
    /**
     * 写回xml文件
     * @param document
     * @param file
     * @throws IOException
     */
    private static void writeDocument(Document document,String file) throws IOException{
        if( document == null || com.mysql.jdbc.StringUtils.isNullOrEmpty(file)){
            return ;
        }
        System.out.println("写文件");
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding( "UTF-8");
        XMLWriter writer = new XMLWriter( new FileOutputStream( new File(file)),format);
        writer.write(document);
        writer.close();
    }
}
